/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.proyecto.managed;

import java.io.Serializable;
import java.util.Vector;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.model.SelectItem;
import sv.com.intesal.clases.LimpiarManaged;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.proyecto.bean.Proyecto;
import sv.com.intesal.proyecto.controlador.ProyectoControlador;
import sv.com.intesal.seguridad.managed.SessionManaged;

/**
 *
 * @author ejerez
 */
@ManagedBean(name = "finalizarProyectoManaged")
@ViewScoped
public class FinalizarProyectoManaged implements Serializable {

    private Mensaje m;
    private SessionManaged sm;
    private Proyecto selectedProyecto;
    private Vector<SelectItem> cmbEstado;

    public FinalizarProyectoManaged() {
        m = new Mensaje();
        sm = new SessionManaged();
        this.cmbEstado = new Vector<SelectItem>();
        this.selectedProyecto = new Proyecto();
        this.setEstado();
    }

    public void getProyecto_Quick(Proyecto p) {
        try {
            this.selectedProyecto = p;
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    private void setEstado() {
        try {
            this.cmbEstado.add(new SelectItem("AC", "Aprobar Proyecto"));
            this.cmbEstado.add(new SelectItem("D", "Denegado"));
            this.cmbEstado.add(new SelectItem("F", "Finalizado"));
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void completeTransaccion() {

        try {
            if (this.validar() == true) {
                if (sm.validar_rol_usuario("wfrmFinalizarProyecto", sm.modificar) == true) {

                    ProyectoControlador pc = new ProyectoControlador();
                    pc.setEstado(this.selectedProyecto.getEstado_p(), this.selectedProyecto.getId_p());
                    m.messageInfo("ESTADO MODIFICADO SATISFACTORIAMENTE");
                    LimpiarManaged.limpiar();
                }
            }
        } catch (Exception e) {
        }
    }

    private Boolean validar() throws Exception {
        try {
            Boolean var_return = true;

            if (this.selectedProyecto.getId_p() == null) {
                m.messageError("DEBE SELECCIONAR UN PROYECTO");
                var_return = false;
            } else if (this.selectedProyecto.getEstado_nombre_p().equals("Finalizado") && (this.selectedProyecto.getEstado_p().equals("F"))) {
                m.messageError("NO PUEDE FINALIZAR UN PROYECTO CUANDO EL PROYECTO ESTA PENDIENTE");
                var_return = false;
            }
            return var_return;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
    /*SETTERS AND GETTERS*/

    public Proyecto getSelectedProyecto() {
        return selectedProyecto;
    }

    public void setSelectedProyecto(Proyecto selectedProyecto) {
        this.selectedProyecto = selectedProyecto;
    }

    public Vector<SelectItem> getCmbEstado() {
        return cmbEstado;
    }

    public void setCmbEstado(Vector<SelectItem> cmbEstado) {
        this.cmbEstado = cmbEstado;
    }
}